#include <iostream>
using namespace std;

//当子类与父类拥有同名的成员函数时 子类回隐藏父类同名的成员函数 ， 加作用域才可访问
class Base {
public:
    int a;
    Base() {
        a = 10;
    }
    void func() {
        cout << "Base - func() "  << endl;
    }

    void func(int a) {
        cout << "Base - func(int a) "  << endl;
    }
};
class Son : public Base {
public:
    Son() {
        a = 20;
    }
    int a;
    void func() {
        cout << "Son - func() "  << endl;
    }
};
int main() {
    Son s1;
    cout << s1.a << endl; //当子类和父类有同名成员变量时，子类对象访问时不加作用域 直接访问的是子类的成员变量
    cout <<s1.Base::a << endl;
    s1.func();
    s1.Base::func();
    s1.Base :: func(10);

    return 0;
}